package dto

// Condition 条件 type: int string time bool, 当前支持int、string、bool
type Condition struct {
	Key   string      `json:"key"`
	Value interface{} `json:"value"`
}

// FieldFilter 多字段模糊查询，多字段间采用 OR 连接
type FieldFilter struct {
	Fields  []string `json:"fields"`
	Keyword string   `json:"keyword"`
}

// FieldSort 排序，单字段排序，sort值为： desc  asc
type FieldSort struct {
	Field string `json:"field"`
	Sort  string `json:"sort"`
}

// PageRequest 分页查询时，前端传给后端的格式
type PageRequest struct {
	PageNo     int         `json:"page_no"`
	PageSize   int         `json:"page_size"`
	Sort       FieldSort   `json:"sort"`
	Filter     FieldFilter `json:"filter"`
	Conditions []Condition `json:"conditions"`
}

/*
{
  "page_no": 1,
  "page_size": 1,
  "filter": "2",
  "conditions": [
    {
      "key": "title",
      "value": "第2张轮播图"
    },
    {
      "key": "seq",
      "value": 40
    },
    {
      "key": "enabled",
      "value": true
    }
  ]
}
*/
